package com.fanxuankai.commons.domain;

/**
 * HTTP 响应状态，完善的状态码能够快速定位问题
 * <p>
 * 状态码规则：
 * 2000000-2999999 成功
 * 3000000-3999999 重定向
 * 4000000-4999999 请求错误
 * 5000000-5999999 服务器错误
 * 第 1 位代表状态类型，第 2-3 位代表服务，第 4-5 位为业务代码（比如：商品），第 6-7 位为错误具体错误(比如：商品不存在)
 *
 * @author fanxuankai
 */
public interface Status {
    /**
     * 代码
     *
     * @return /
     */
    Integer getCode();

    /**
     * 提示信息
     *
     * @return /
     */
    String getMessage();

    /**
     * 创建实例
     *
     * @param code    代码
     * @param message 提示信息
     * @return /
     */
    static Status newInstance(Integer code, String message) {
        return new Status() {
            @Override
            public Integer getCode() {
                return code;
            }

            @Override
            public String getMessage() {
                return message;
            }
        };
    }
}
